View Javadoc
1 /* 2 * Scope: a generic MVC framework. 3 * Copyright (c) 2000-2002, The Scope team 4 * All rights reserved. 5 * 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 14 * Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 18 * Neither the name "Scope" nor the names of its contributors 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR 27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 * 35 * 36 * $Id: ActionManager.java,v 1.8 2002/09/06 16:11:45 ludovicc Exp $ 37 */ 38 package org.scopemvc.core; 39 40 /*** 41 * <P> 42 * 43 * ActionManager is a {@link ModelManager} that handles the actions (invokable 44 * methods) of model objects. The core of Scope doesn't depend on this manager 45 * although this abstract class is in the core package for consistency with the 46 * PropertyManager. An implementation for JavaBean model objects is provided in 47 * {@link org.scopemvc.model.beans.BeansActionManager BeansActionManager}. </P> 48 * 49 * @author <A HREF="mailto:smeyfroi@users.sourceforge.net">Steve Meyfroidt</A> 50 * @created 05 August 2002 51 * @version $Revision: 1.8 $ $Date: 2002/09/06 16:11:45 $ 52 */ 53 public abstract class ActionManager extends ModelManager { 54 55 private final static String NAME = "ActionManager"; 56 57 58 /*** 59 * Create an ActionManager for the model class 60 * 61 * @param inModelClass The class of the model 62 * @return The ActionManager instance 63 */ 64 public static ActionManager getInstance(Class inModelClass) { 65 return (ActionManager) make(NAME, inModelClass); 66 } 67 68 69 /*** 70 * Create an ActionManager for the model 71 * 72 * @param inModel The model 73 * @return The ActionManager instance 74 */ 75 public static ActionManager getInstance(Object inModel) { 76 if (inModel == null) { 77 throw new IllegalArgumentException("Can't create an ActionManager for null"); 78 } 79 return getInstance(inModel.getClass()); 80 } 81 82 83 /*** 84 * Generic interface to perform arbitrary actions on a model object. 85 * 86 * @param inModel the model object to perform the action. 87 * @param inAction the {@link ModelAction} to do. 88 * @param inParameters parameters for action. 89 * @return the return from the method (wrapped in an object if primitive 90 * type), or null if the method returns void. 91 * @throws Exception If the action could not be executed successully 92 */ 93 public abstract Object doAction(Object inModel, ModelAction inAction, Object[] inParameters) throws Exception; 94 95 96 /*** 97 * Can this model do the passed {@link ModelAction}? 98 * 99 * @param inModel The model that may contain the method for executing the 100 * action 101 * @param inAction The action 102 * @return True if the model contains the method for executing the action 103 */ 104 public abstract boolean canDoAction(Object inModel, ModelAction inAction); 105 }

This page was automatically generated by Maven